import config from '@/config/env.js';
import md5 from 'js-md5';
import uuid from 'uuid';
const utilsOb = {
    /**
     *  操作本地储存
     */ 
    handleLocalStorage:  {
        get: function(key) {
            var value = localStorage.getItem(key);
            if (value) {
                try {
                    var value_json = JSON.parse(value);
                    return value_json;
                } catch(e) {
                    return value;
                }
            } else {
                return false;
            }
        },
        set: function(key, value) {
            let transStrs = JSON.stringify(value);
            localStorage.setItem(key, transStrs);
        },
        remove: function(key) {
            localStorage.removeItem(key);
        },
        clear: function() {
            localStorage.clear();
        }
    },
    /**
     *  复制对象
     *  @param { Object } stayObj 待复制对象
     */
    simpleCopy: (stayObj) => {
        return JSON.parse(JSON.stringify(stayObj));
    },
    /** 时间格式化
     *  @param { Date } date date时间对象
     *  @param { String } fmt 格式化内容
     *  将 Date 转化为指定格式的String
        月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，
        年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
        例子：
        Dateformat(dateObj,"yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
        Dateformat(dateObj,"yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18
     */
    Dateformat: (date,fmt) => {
        let o = {
            "M+": date.getMonth() + 1, //月份
            "d+": date.getDate(), //日
            "h+": date.getHours(), //小时
            "m+": date.getMinutes(), //分
            "s+": date.getSeconds(), //秒
            "q+": Math.floor((date.getMonth() + 3) / 3), //季度
            "S": date.getMilliseconds() //毫秒
        };
        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (let k in o)
            if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        return fmt;
    },
    /**
     *  金钱格式化
     *  @param { [String,Number] } stayPrice 金额
     *  @param { String } digit 保留小数点位数
     */
    priceFormat: (stayPrice,digit) => {
        stayPrice = Number(stayPrice);
        stayPrice = stayPrice / config.PRICE_RADIUS;
        return stayPrice.toFixed(digit);
    },
    getUploadPrefix(type='img') {
        let prefix = 'Task';
        if (config.devlopment == 'dev') {
            if (type === 'img') {
                prefix ='TestG'
            }
            if (type === 'video') {
                prefix ='TestV'
            }
        }
        return prefix;
    },
    createBidFn() {
        let bid = `${md5(Date.now().toString() + uuid.v1())}`;
        return bid;
    },
    createUploadPrefix: function (uploadType='Task', fileType='img') {
        var prefix = uploadType;
        if (config.devlopment == 'dev') {
            if (fileType === 'img') {
                prefix ='TestG'
            }
            if (fileType === 'video') {
                prefix ='TestV'
            }
        }
        return prefix;
    },
}


export default utilsOb;